/*
 * 集中 git 相关命令
 */
const shell = require('shelljs')

/*
 * 判断当前分支是否有改动（工作区有改动）
 */
exports.isBranchChanged = function() {
    let result = shell.exec('git status -s', {silent: true})
    if (result.stdout) { // stdout 会输出改动的内容
        return true
    }
    return false
}

/*
 * 判断当前分支是否为待确定的分支
 * @branch 待确定的分支
 */
exports.checkBranchName = function(branch) {
    // 获取当前分支名
    let result = shell.exec('git rev-parse --abbrev-ref HEAD', {silent: true})
    // 删除分支中可能存在换行符
    result = result.replace('\n', '')
    if (result === branch) { // 必须完全匹配
        return true
    }
    return false
}

/*
 * 判断当前是否为 master 分支
 */
exports.isMasterBranch = function() {
    return this.checkBranchName('master')
}

/*
 * 获取 git config 中的 user.name
 */
exports.userName = function() {
    let name = shell.exec('git config user.name', {silent: true})
    // 替换末尾换行
    return name.replace('\n', '')
}

/*
 * 获取 git config 中的 user.email
 */
exports.userEmail = function() {
     let email = shell.exec('git config user.email', {silent: true})
     return email.replace('\n', '')
}